package com.shujia;

import redis.clients.jedis.Jedis;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class RedisApi {
    public static void main(String[] args) {
        //注意事项：
        //1、需要将redis服务所在的机器的防火墙进行关闭
        //2、修改配置文件，使redis可以被外界的应用所连接
        Jedis jedis = new Jedis("192.168.254.150", 7000);
//        System.out.println(jedis);

        /**
         * 对key进行操作
         */
//        jedis.select(1);
        jedis.select(0); //选择0号库
//        Set<String> keys = jedis.keys("*");
        Set<String> keys = jedis.keys("k1*k2");
        for (String key : keys) {
            System.out.println(key);
        }
        //对key设置过期时间
        jedis.expire("name", 15);
//        jedis.pexpire() //设置毫秒
//        jedis.pexpireAt() //设置时间戳
        //删除key
        jedis.del("k1andk2", "k1ork2");

        /**
         * String类型的value
         */
        jedis.set("name", "xiaojhu");
        String name = jedis.get("name");
        System.out.println(name);

        System.out.println("===================");
        /**
         * list类型
         */
//        jedis.lpush("list1","1","2","3","4");
//        jedis.rpush("list2","1","2","3","4");
//        List<String> list1 = jedis.lrange("list1", 0L, -1L);
//        for (String s : list1) {
//            System.out.println(s);
//        }
        //......

        /**
         * set
         */
//        jedis.sadd("set1","qq","ww","aaa","qqq","qq");
//        Set<String> set1 = jedis.smembers("set1");
//        for (String s : set1) {
//            System.out.println(s);
//        }

        /**
         *  zset
         */
//        jedis.zadd("zset1",90.0,"xiaohu");
        //将多个值组装成map集合
//        HashMap<String, Double> values = new HashMap<>();
//        values.put("李凯迪",100.0);
//        values.put("侯凯迪",200.0);
//        values.put("音旭辉",150.0);
//        jedis.zadd("zset1",values);

        /**
         * Hash
         */
        HashMap<String, String> maps = new HashMap<>();
        maps.put("name", "xiaohu");
        maps.put("age", "18");
        maps.put("address", "安徽合肥");
        maps.put("id", "1001");
        jedis.hset("hash1", maps);
        //遍历
        Map<String, String> hash1 = jedis.hgetAll("hash1");
        Set<Map.Entry<String, String>> entries = hash1.entrySet();
        for (Map.Entry<String, String> entry : entries) {
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key + ":" + value);
        }


    }
}
